perm filename NSF.US[DOC,TOB] blob sn#006777 filedate 1972-11-01 generic text, type T, neo UTF8
00100	
00200	                   ADVANCED AUTOMATION DEVELOPMENT
00300	
00400	The  SAIL  proposes  to  undertake  a  project  of  development   and
00500	application  in  advanced  automation.   The project includes a pilot
00600	assembly  station  carrying   out   practical   assembly   tasks,   a
00700	hardware-software system ready for production and fundamental work on
00800	the underlying problems of vision, manipulation and  problem-solving.
00900	We  believe  the  laboratory  is uniquely qualified to carry out this
01000	program  which  will  be  an  important  contribution  to  increasing
01100	industrial productivity.
01200	
01300	Our basic approach involves  a  general  purpose  system  integrating
01400	sensors  and  manipulators  controlled by sophisticated programs in a
01500	digital computer.  We have worked with such systems  since  1965  and
01600	have  developed  many  of the basic ideas required in general purpose
01700	assembly devices.  The main thrust of this proposal is  to  establish
01800	the  practicality  of  our  methods  and carry their development to a
01900	point from which industry can take over.
02000	
02100	The  body  of this proposal is divided into four main sections: Pilot
02200	assembly  station,  vision,  manipulation  development,  and  systems
02300	support.    Each   section   contains  a  brief  description  of  the
02400	laboratory's past work in the area, how it is to be applied, and what
02500	extensions  are  to  be undertaken.  Finally, we consider a number of
02600	important issues concerning our relations with industry and  withother
02700	reseach and development efforts in advanced automation.
     

00100	The existing arm, designed and built by V. Scheinman, has been operational
00200	since 1971; it is controlled by a software servo control system developed by
00300	R. Paul and is now in heavy use. A second arm of the same type, with only
00400	minor modifications, is currently being interfaced to the computer. Both
00500	arms will share a common work space and will be available individually, or
00600	together for two handed tasks.
00700	A stronger version of the original parallel jaw hand,
00800	and a new hand with independently driven fingers, and an extendable
00900	forearm have been made.
01000	
01100	Control of the arms is by a series of high level instructions; these 
01200	instructions may be executed directly, or may be assembled together
01300	into an arm program. Arm programs may then be executed, as desired, by the
01400	control program.
01500	The control instructions may be accessed directly by other programs, using
01600	the message procedure mechanism, or in the form of symbolic  source file.
01700	
01800	Each joint of the arm is calibrated in terms of torque v. drive level
01900	and by making use of the kinematic model of the arm it is possible to
02000	predict  the joint drive levels to produce a given reaction force and torque
02100	at the hand.
02200	For the hand to exhibit degrees of freedom in given directions and about
02300	given axes, various joints are selected to be "free", that is to have
02400	no feedback applied to them.
02500	By exerting a reaction force at the hand and providing that certain degrees
02600	of freedom exist it is possible to perform a much wider class of tasks
02700	than simple positional control, for instance screwing in screws, mating parts,
02800	inserting tools and turning cranks.
02900	
03000	Touch sensors on the fingers allow the hand to sense objects without disturbing
03100	them. If activated the arm will stop when any of the sensors touch.
03200	Branching arm instructions can test the state of the sensors and modify
03300	the execution of an arm program.
03400	When screwing a nut onto a bolt, for instance, the hand is first centered over the bolt
03500	by touching it.
03600	
03700	Some use of hand tools has occured with the assembly work to date.
03800	A power socket driver has been made suitable for the hand. It is expected
03900	that increasing ability to ues tools will be developed.
04000	
     

00100	Most tasks can be described in terms of a series of actions which will need
00200	to be modified in order to interact with the real world. For example in order
00300	to pick up a part and place it on a conveyor a series of actions can be planned:
00400	move the hand to the location of the part, close the hand, move to the conveyor,
00500	place the part on the conveyor, open the hand and move it away. If the
00600	part was always located exactly and the conveyor remained precisely in position
00700	then the existing program would suffice.
00800	In order to adjust to the possible displacement of parts and conveyor
00900	the action will in practice need to be modified, by vision, touch or force.
01000	In terms of arm control each task is planned to provide an arm program
01100	executable in real time. At specific points at which its execution must
01200	be modified either branching type instructions will allow touch interaction,
01300	or a "wait" state will be planned. Execution can be resumed on receipt of an 
01400	interrupt, as from a photo-cell device indicating the arrival of a part,
01500	or upon completion of a visual analysis. When in a "wait" state any number
01600	of arm instructions can be executed without affecting the ability to resume
01700	execution of the arm program. It is in this way that vision programs 
01800	interact with the arm, modifying the hand position and orientation in order
01900	to perform some sub-task before resuming execution.
02000	
02100	This basic approach is reflected in the programming structure. A high level
02200	time sharing program plans tasks and initiates execution. Execution is
02300	by means of a small computer directly related to each arm and vision input
02400	device. This small control computer servoes the arm and performs low level
02500	vision analysis. If a high level analysis is necessary or something unexpected
02600	happens then the time sharing computer performs the analysis and modifies
02700	the state of the hand while it is a "wait" state, before execution is resumed.
02800	Thus a series of small control computers controlling one or two arms and
02900	vision input devices, are in turn managed by a large central time sharing
03000	computer capable of planning tasks, performing high level vision analysis,
03100	calibration and control.
03200	
     

00100	             SYSTEM REQUIREMENTS FOR ADVANCED AUTOMATION

00200	
00300	A  key  element in the development of any large programming effort is
00400	the software support.  There has been continual  effort  along  these
00500	lines  at the S.A.I.L. and many useful ideas have been developed.  We
00600	propose to extend the research along two separate lines:  support for
00700	research  and  system  software  for operating automated systems.  We
00800	will briefly describe our post efforts and in this area and  what  we
00900	propose to undertake.
01000	
01100	The S.A.I.L. has pioneered in several areas  of  system  programming,
01200	including  timesharing systems, interactive graphics, and programming
01300	languages.
01400	
01500	A  great  deal  of  additional effort has gone into direct support of
01600	hand-eye research.  Very early, we  established  a  set  of  standard
01700	formats  and  library  routines;  this has facilitated the cumulative
01800	effect needed for progress in an area as difficult  as  this  one.  A
01900	programming language S.A.I.L., was implemented in 1968.  The language
02000	incorporates special features for large  real-world-oriented  problem
02100	solving  systems  and  is  currently in use at a number of Artificial
02200	Intelligence and other laboratories.
02300	
02400	As  we began to assemble larger and more sophisticated collections of
02500	programs, we felt a need  for  flexible  mechanisms  for  cooperating
02600	sequential  processes.  The resulting monitor and language features [
02700	, ] have worked well for  us  and  have  been  influential  on  other
02800	projects  planning.   Recently,  we  have  added an additional set of
02900	features to SAIL to facilitate non-deterministic  and  event-directed
03000	programming.   The  early  reactions  to  this  work, both within the
03100	laboratory and without has been very encouraging.
03200	
03300	We  expect  relatively  little  work  to be needed on further systems
03400	support for basic research.  There will  undoubtedly  be  efforts  to
03500	take  advantage of new hardware and of new programming ideas that may
03600	develop in the course of this  program.   Almost  all  of  this  work
03700	should be covered by other funding.
03800	
03900	The development of software for the  assembly  station  will  require
04000	more  of  our  effort.  The octapus configuration requires code to be
04100	resident in the local computer and in the shared  machine.   The  low
04200	level  programs in the local machine will not be modified often, thus
04300	we can assume that  a  PDP-l0  resident  compile  will  suffice.  The
04400	planning programs and general vision programs will be resident in the
04500	shared system.  There are two possible configurations for the  shared
04600	computer  system:   A PDP-10 equivalent machine or a software package
04700	in ASA Standard Fortran IV which will run on any  sufficiently  large
04800	machine.   One  of the tasks under this proposal would be to evaluate
04900	these two alternatives.
05000	
     

00100	We assume that present manipulators have a small market but stable, and
00200	that most will have minicomputers soon (Sundstrand does now).  Will
00300	the incremental cost of touch, force and visual sensors be offset
00400	by the opening of new capabilities, and will the cost be offset by
00500	reduced cost of system design for machines which allow loose alignment
00600	tolerances?  We estimate in a separate paragraph  hardware costs, and
00700	estimate that by 1977, the incremental cost of visual sensors will
00800	be $1100, or $1400 with a laser ranging scheme as we use now.  That
00900	will add $2k to $3k to the selling price, or about 10% of current
01000	manipulator prices.  Presumably labor costs will inflate by double
01100	that figure, so that cost comparisons will not change appreciably
01200	over that time scale unless significant new mechanical designs are
01300	made.   A conclusion is that sensor-equipped robots will be available
01400	at slight additional cost.  We do not expect mechanical production
01500	costs to drop dramatically as electronics costs fall with integration.
01600	The most promising cost reduction development would be high-production
01700	standard modules such as robots.  At some stage we expect that design
01800	will be cheaper with standard robot modules than with special purpose
01900	designs, just as it is now more economical to use mini-computer
02000	controllers than special purpose controllers.  To some extent, the
02100	dehumanized industrial worker fills that role now, so that we do not
02200	expect discontinuous change.  An inhibiting factor will be that large
02300	companies who can automate first, have large enough volume to afford
02400	large special design costs.  That suggests a need for governmental
02500	support which will aid medium scale industry to get over the hump.
02600	But given sensor-equipped robots at little extra cost, they will
02700	have visual ability to sense color, strong contrasts in brightness,
02800	recognize known objects from two dimensional outlines (top view of
02900	flat object) or three dimensionally using depth, to a certain extent
03000	they will be able to recognize three dimensional objects using
03100	monocular recognition.  They will be able to visually align mating
03200	parts in assembly operations, increase reliability by self-calibration
03300	and flaw and disaster detection, and permit large tolerances in
03400	parts transfer, even permitting parts to be taken from a bin.  Several
03500	of these abilities are not yet available in the laboratory, but with
03600	known conditions and objects, and some engineering (color coding) are
03700	easily with that time span.  
03800	
03900	To bring about a transfer of technology from the laboratory to pilot
04000	production, several concurrent phases are necessary:
04100		systematize hardware (cost conscious)
04200			Scheinman arm
04300			sensor study
04400			standard interface and pan/tilt for visual devices
04500			adopt commercial visual hardware
04600		systematize software and interaction
04700			hand/eye system
04800			drawing program
04900			experience with low/cost graphics
05000		ease of problem specification
05100			visual representation
05200			geometric editor
05300			visual input
05400			perceptual strategies
05500		standardize economical computer configuration
05600			alternative is de facto standards at lower level
05700			powerful force for guiding manufacturers of minis
05800		provide powerful modules to broaden engineering choices
05900		design inherent reliability.
06000			continuous self-calibration
06100			disaster detection and contingency planning
06200			wide latitude in tolerances
06300			low incremental cost in quality control
06400			continuous monitoring of function and product quality
06500	
06600	Our past work has included many of the functions which relate to those
06700	considerations.  We have made color region finders [Binford, Bajcsy],
06800	texture analysis programs [Bajcsy], representation of complex objects
06900	[Binford], laser depth ranging devices [Binford, Agin], description
07000	of complex objects using depth information [Agin], visual feedback
07100	systems for stacking, picking up and inserting [Gill, Davis], standardized
07200	software systems [hand/eye system Feldman, Sproull, Pingle], performed
07300	sensor studies [Binford, Earnest], and maintained calibrated systems
07400	[Sobel, Gill].
     

00100	It might seem at first that our work on the representation of complex
00200	shapes might have little relevance to the transfer of technology to
00300	industry, since earliest applications might use the simplest facilities.
00400	In fact, one of the earliest needs will be for convenient man/machine
00500	communication.  Present non-intelligent robots are programmed by leading
00600	them through a path which is to be repeated ad nauseum.  An incremental
00700	addition will allow contingency trajectories to be executed in case of
00800	small variations from routine.  The engineer must then specify what
00900	normal function is, and how to monitor it, how to recognize recoverable
01000	situations.  To do so, he can specify this symbolically in interaction
01100	with an input program.  The language in which he specifies these
01200	normal/abnormal descriptions  involves the shape of objects for assembly,
01300	the mating of parts, and schematic descriptions of operations for insertion.
01400	The significance of our representation of shape is that it provides a
01500	natural way of speaking about shape, in terms of part/whole with
01600	primitives which resemble many fabrication operations.  It also provides
01700	considerable intuition for the program as to the intent of the operation,
01800	since it has powerful representation of shape, and an elaboration of
01900	form=function heuristics.  One function of a flat surface is to support
02000	objects (a table is a flat surface at a given height); the function of
02100	a room is to be a box, ie to enclose space.
02200	
02300	Another use of the representation of shape in interaction is for output
02400	of the machine's concepts to the user.  Computer display is a vigorous
02500	field now; our representation provides a more efficient representation
02600	for display and could lead to such facilities being available on 
02700	small machines.  For the machine's perception, this allows greater
02750	use of predictive mechanisms based on internal models.
02800	
02900	The representation aids input in that the information can be conveyed
03000	by human interaction or visual input.  An adequate description of an
03100	object could be to place it in front of the system (or in front of a
03200	big master system) and let the results be inferred.  The representation
03300	is useful for monocular vision also.